import { Image } from '@react-pdf/renderer';
import JsBarcode from 'jsbarcode';
export interface PdfBarcodeProps {
    src?: string;
    value?: string;
    style?: React.CSSProperties;
}
export const PdfBarcode = (props: PdfBarcodeProps) => {
    return <>{props.src && <Image  {...props} style={{ ...props.style }} />}</>
}
PdfBarcode.loadData = async (nodes: any[]) => {
    for (const node of nodes) {
        if (node.type == 'PdfBarcode') {
            const width = node.width;
            const height = node.height;
            const style = node.data.style;
            const canvas = document.createElement('canvas');
            // 使用 JsBarcode 渲染条码到 Canvas
            JsBarcode(canvas, node.data.value ?? '123456789012', {
                format: node.data?.format && 'CODE128', // 条码格式
                lineColor: style?.color ?? '#000000', // 条码颜色
                width, // 条码宽度
                height, // 条码高度
                displayValue: true // 是否显示文本
            });
            // 获取 Base64 数据
            node.data.src = canvas.toDataURL();
        }
    }
    return nodes;
}
